1 创建服务器

//todo django commands

1.1 python manage.py runserver

  • manage.py 设置DJANGO_SETTINGS_MODULE环境变量为当前项目的settings.py,然后通过django.core.management.execute_from_command_line 继续执行命令(此处为runserver及其相关参数)
    django-admin commands

  • 使用django命令行的方式,执行django.core.management.commands.runserver, 执行该模块下的Command类的handle方法,通过django.core.servers.basehttp.get_internal_wsgi_application 方法获取一个处理类的名称,这里获取到的是项目setting.py中的WSGI_APPLICATION 配置,一般是项目目录下wsgi.py 里面定义的application,配置为xxx.wsgi.application.wsgi.py中定义的application为django.core.wsgi.get_wsgi_application返回的django.core.handlers.wsgi.WSGIHandler的实例。最后通过调用django.core.servers.basehttp.run方法创建并启动http服务器,并启用监听。

  • 请求到达后,会调用django.core.handlers.wsgi.WSGIHandler的实例

2 参考

  1. wsgiref 源代码分析
  2. WSGI 简介
  3. Wsgi研究
  4. Django 结构及处理流程分析
  5. Django源码分析–引导
  6. Django中的request和response
  7. Django 结构及处理流程分析
  8. Django运行方式及处理流程总结
  9. How to write a web framework in Python
  10. Why so many Python web frameworks
  11. 用Python写一个简单的Web框架
  12. Django 结构及处理流程分析
  13. Django运行方式及处理流程总结
  14. Python与Django篇
  15. Django运行方式及处理流程总结(xianglong.me)
  16. Django运行方式及处理流程总结
  17. Django 结构及处理流程分析

最后更新: 2022年03月02日 03:32

原始链接: http://rawbin-.github.io/framework/2015-03-05-django-request-source/

× 赞赏这个人~
打赏二维码